<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            background-color: #bbb;
        }

        #canvas {
            background-color: #000;
        }
    </style>
</head>

<body>
    <canvas id="canvas" width="400" height="400"></canvas>
    <!-- <textarea name="" id="log" cols="30" rows="10"></textarea> -->
</body>
<script src="./utils.js"></script>
<script src="./arrow.js"></script>
<script src="./ball.js"></script>
<script src="./ship.js"></script>
<script>
    window.onload = () => {
        var canvas = document.getElementById("canvas");
        var context = canvas.getContext("2d");
        var log = document.getElementById("log"),
            balls = [],
            numBalls = 800,
            gravity = 0.5;

        for (var ball, i = 0; i < numBalls; i++) {
            // ball = new Ball(2, Math.random() * 0xffffff);
            ball = new Ball(2, "lightblue");
            ball.x = canvas.width / 2;
            ball.y = canvas.height;
            ball.vx = Math.random() * 2 - 1;
            ball.vy = Math.random() * -10 - 10;
            balls.push(ball);
        }

        function draw(ball, pos) {
            // 画出球的坐标
            ball.x += ball.vx
            ball.y += ball.vy
            ball.vy += gravity
            // 如果超出了直接移除
            if (ball.x - ball.radius > canvas.width ||
                ball.x + ball.radius < 0 ||
                ball.y - ball.radius > canvas.height ||
                ball.y + ball.radius < 0) {
                ball.x = canvas.width / 2;
                ball.y = canvas.height;
                ball.vx = Math.random() * 2 - 1;
                ball.vy = Math.random() * -10 - 10;
                // if (balls.length > 0) {
                //     log.value = "remove " + ball.id
                // } else {
                //     log.value = "all gone"
                // }
            }
            ball.draw(context)
        }
        (function drawFrame() {
            window.requestAnimationFrame(drawFrame, canvas);
            context.clearRect(0, 0, canvas.width, canvas.height)

            // 每次渲染10个球
            // var i = balls.length
            // while (i--) {
            //     draw(balls[i], i)
            // }
            balls.forEach(draw)
        }())
    };
</script>

</html>